import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'salary.settings')
django.setup(set_prefix=False)


#------------------------------------------------------------------#


from students.models import Student, Score
from django.db.models import Q, Avg, Sum, Max, Min, Count

################ 导入数据 ##################


stu_list = [('王一涵',10),('张青阳',12),('韩名博',12),('王梓',13),('骆铭峰',11),('赢乘风',11),('林烽',10),('吴博文',12),('马小文',12)]
sco_list = [(1,'语文',90,'王一涵'),(2,'数学',80,'王一涵'),(3,'英语',75,'王一涵'),(4,'语文',95,'张青阳'),(5,'数学',90,'张青阳'),(6,'英语',98,'张青阳'),(7,'语文',80,'韩名博'),(8,'数学',89,'韩名博'),(9,'英语',70,'韩名博'),(10,'语文',60,'王梓'),(11,'数学',75,'王梓'),(12,'英语',65,'王梓'),(13,'语文',81,'骆铭峰'),(14,'数学',82,'骆铭峰'),(15,'英语',55,'骆铭峰'),(16,'语文',78,'赢乘风'),(17,'数学',89,'赢乘风'),(18,'英语',65,'赢乘风'),(19,'语文',89,'林烽'),(20,'数学',60,'林烽'),(21,'英语',49,'林烽'),(22,'语文',89,'吴博文'),(23,'数学',92,'吴博文'),(24,'英语',79,'吴博文'),(25,'语文',50,'马小文'),(26,'数学',60,'马小文'),(27,'英语',62,'马小文')]

for k,v in stu_list:
    Student(k,v).save()

for s1,s2,s3,s4 in sco_list:
    Score(s1,s2,s3,s4).save()


################ 查询 ##################

stu = Student.objects.all()
sco = Score.objects.all()

# 总成绩大于250分的学生信息
print(sco.values('name').annotate(Sum('score')).filter(score__sum__gt=250))
# 语文成绩在80-90分之间的学生信息
print(sco.filter(exam_subjects='语文').filter(score__gt=80,score__lt=90))
# 有一门科目低于60分的学生信息
print(sco.filter(score__lt=60).values('name').annotate())
# 平均分70以上的学生信息
print(sco.values('name').annotate(Avg('score')).filter(score__avg__gt=70))
# 三门成绩都大于90分的学生姓名
print(sco.filter(score__gte=90).values('name').annotate(Count('score')).filter(score__count=3))

